<html>
	<head>
		<meta charset="utf-8"/>
		<title>BHandler</title>
		<link rel="stylesheet" type="text/css" href="./style.css"/>
	</head>
	<body>
		<h1>BHandler</h1>
		<p>Inherites from <a href="BObject.html">BObject</a></p>
		<h2>public</h2>
		<table id="public">
			<tr><td align="right"/><td><a href="#BHandler(const BString&)">BHandler</a>(const BString& name = BString());</td></tr>
			<tr><td align="right"/><td><a href="#~BHandler()">~BHandler</a>();</td></tr>
			<tr><td align="right">BViewer* </td><td><a href="#viewer()">viewer</a>() const;</td></tr>
			<tr><td align="right">BCamera* </td><td><a href="#camera()">camera</a>() const;</td></tr>
			<tr><td align="right">BScene* </td><td><a href="#scene()">scene</a>() const;</td></tr>
			<tr><td align="right">bool </td><td><a href="#fresh()">fresh</a>() const;</td></tr>
			<tr><td align="right">void </td><td><a href="#setMaster(BHandler*)">setMaster</a>(BHandler* master);</td></tr>
			<tr><td align="right">const BHandler* </td><td><a href="#master()">master</a>() const;</td></tr>
			<tr><td align="right">BHandler* </td><td><a href="#master()">master</a>();</td></tr>
			<tr><td align="right">void </td><td><a href="#addSlave(BHandler*)">addSlave</a>(BHandler* slave);</td></tr>
			<tr><td align="right">void </td><td><a href="#removeSlave(BHandler*)">removeSlave</a>(BHandler* slave);</td></tr>
			<tr><td align="right">void </td><td><a href="#clearSlaves()">clearSlaves</a>();</td></tr>
			<tr><td align="right">int </td><td><a href="#slaveCount()">slaveCount</a>() const;</td></tr>
			<tr><td align="right">BHandler* </td><td><a href="#slave(int)">slave</a>(int index) const;</td></tr>
			<tr><td align="right">BHandler* </td><td><a href="#slave(const BString&)">slave</a>(const BString& name) const;</td></tr>
			<tr><td align="right">bool </td><td><a href="#contains(BHandler*)">contains</a>(BHandler* slave);</td></tr>
			<tr><td align="right">bool </td><td><a href="#contains(const BString&)">contains</a>(const BString& name) const;</td></tr>
			<tr><td align="right">void </td><td><a href="#setOrder(int)">setOrder</a>(int order);</td></tr>
			<tr><td align="right">int </td><td><a href="#order()">order</a>() const;</td></tr>
			<tr><td align="right">void </td><td><a href="#raise()">raise</a>();</td></tr>
			<tr><td align="right">void </td><td><a href="#lower()">lower</a>();</td></tr>
		</table>
		<h2>protected</h2>
		<table id="protected">
			<tr><td align="right">virtual bool </td><td><a href="#event(const BEvent&)">event</a>(const BEvent& event);</td></tr>
			<tr><td align="right">virtual void </td><td><a href="#paint(BPainter&)">paint</a>(BPainter& painter);</td></tr>
			<tr><td align="right">virtual void </td><td><a href="#render(BRender&)">render</a>(BRender& render);</td></tr>
			<tr><td align="right">virtual void </td><td><a href="#updateEvent(const BEvent&)">updateEvent</a>(const BEvent& event);</td></tr>
			<tr><td align="right">virtual void </td><td><a href="#attachEvent(const BEvent&)">attachEvent</a>(const BEvent& event);</td></tr>
			<tr><td align="right">virtual void </td><td><a href="#detachEvent(const BEvent&)">detachEvent</a>(const BEvent& event);</td></tr>
			<tr><td align="right">virtual bool </td><td><a href="#focusEvent(const BFocusEvent&)">focusEvent</a>(const BFocusEvent& event);</td></tr>
			<tr><td align="right">virtual bool </td><td><a href="#keyDownEvent(const BKeyEvent&)">keyDownEvent</a>(const BKeyEvent& keyEvent);</td></tr>
			<tr><td align="right">virtual bool </td><td><a href="#keyUpEvent(const BKeyEvent&)">keyUpEvent</a>(const BKeyEvent& keyEvent);</td></tr>
			<tr><td align="right">virtual bool </td><td><a href="#mouseEnterEvent(const BMouseEvent&)">mouseEnterEvent</a>(const BMouseEvent& mouseEvent);</td></tr>
			<tr><td align="right">virtual bool </td><td><a href="#mouseLeaveEvent(const BMouseEvent&)">mouseLeaveEvent</a>(const BMouseEvent& mouseEvent);</td></tr>
			<tr><td align="right">virtual bool </td><td><a href="#mousePressEvent(const BMouseEvent&)">mousePressEvent</a>(const BMouseEvent& mouseEvent);</td></tr>
			<tr><td align="right">virtual bool </td><td><a href="#mouseReleaseEvent(const BMouseEvent&)">mouseReleaseEvent</a>(const BMouseEvent& mouseEvent);</td></tr>
			<tr><td align="right">virtual bool </td><td><a href="#mouseMoveEvent(const BMouseEvent&)">mouseMoveEvent</a>(const BMouseEvent& mouseEvent);</td></tr>
			<tr><td align="right">virtual bool </td><td><a href="#mouseWheelEvent(const BMouseEvent&)">mouseWheelEvent</a>(const BMouseEvent& mouseEvent);</td></tr>
			<tr><td align="right">virtual bool </td><td><a href="#mouseClickEvent(const BMouseEvent&)">mouseClickEvent</a>(const BMouseEvent& mouseEvent);</td></tr>
			<tr><td align="right">virtual bool </td><td><a href="#mouseDoubleClickEvent(const BMouseEvent&)">mouseDoubleClickEvent</a>(const BMouseEvent& mouseEvent);</td></tr>
			<tr><td align="right">virtual bool </td><td><a href="#dragEnterEvent(const BDragEvent&)">dragEnterEvent</a>(const BDragEvent& dragEvent);</td></tr>
			<tr><td align="right">virtual bool </td><td><a href="#dragLeaveEvent(const BDragEvent&)">dragLeaveEvent</a>(const BDragEvent& dragEvent);</td></tr>
			<tr><td align="right">virtual bool </td><td><a href="#dragMoveEvent(const BDragEvent&)">dragMoveEvent</a>(const BDragEvent& dragEvent);</td></tr>
			<tr><td align="right">virtual bool </td><td><a href="#dragDropEvent(const BDragEvent&)">dragDropEvent</a>(const BDragEvent& dragEvent);</td></tr>
		</table>
		<div id="desc">
			<h2>Detailed Description : </h2>
			<p>BHandler is base class defining the interface, and a certain amount of default functionality, for classes which wish to control cameras in response to viewer events.
			</p>
			<p>You can use it by function BViewer::setHandler(handler), It can has serveral slaver handler, which will response the event first. Sub classes : BSphereHandler, BStrollHandler, BOrthoHandler...</p>
		</div>
		<h2 id="docs">Member Function Documentation</h2>
		<div id="BHandler(const BString&)">
			<h3>BHandler(const BString& name = BString());</h3>
			<p>Constructs a handler with name.</p>
		</div>
		<div id="~BHandler()">
			<h3>~BHandler();</h3>
			<p>Destroys the handler.</p>
		</div>
		<div id="viewer()">
			<h3>BViewer* viewer() const;</h3>
			<p>Get the viewer attached of this handler.</p>
		</div>
		<div id="camera()">
			<h3>BCamera* camera() const;</h3>
			<p>Get the camera attached of this handler, it is attached by BViewer::setCamera();</p>
		</div>
		<div id="scene()">
			<h3>BScene* scene() const;</h3>
			<p>Get the scene attached of this handler, it is attached by BViewer::setScene().</p>
		</div>
		<div id="fresh()">
			<h3>bool fresh() const;</h3>
			<p>This will dirty the viewer and camera attached of this handler if they exist.</p>
		</div>
		<div id="setMaster(BHandler*)">
			<h3>void setMaster(BHandler* master);</h3>
			<p>Set the master handler of this handler, equals master-&gtaddSlave(this).</p>
		</div>
		<div id="master()">
			<h3>const BHandler* master() const;</h3>
			<p>Get the master handler of this handler.</p>
		</div>
		<div id="master()">
			<h3>BHandler* master();</h3>
		</div>
		<div id="addSlave(BHandler*)">
			<h3>void addSlave(BHandler* slave);</h3>
			<p>Add a slave handler.</p>
		</div>
		<div id="removeSlave(BHandler*)">
			<h3>void removeSlave(BHandler* slave);</h3>
			<p>Remove a slave handler.</p>
		</div>
		<div id="clearSlaves()">
			<h3>void clearSlaves();</h3>
			<p>Remove all slave handlers.</p>
		</div>
		<div id="slaveCount()">
			<h3>int slaveCount() const;</h3>
			<p>Return number of handler's slavers.</p>
		</div>
		<div id="slave(int)">
			<h3>BHandler* slave(int index) const;</h3>
			<p>Get the slave handler of index.</p>
		</div>
		<div id="slave(const BString&)">
			<h3>BHandler* slave(const BString& name) const;</h3>
			<p>Get the slave handler of name.</p>
		</div>
		<div id="contains(BHandler*)">
			<h3>bool contains(BHandler* slave);</h3>
		</div>
		<div id="contains(const BString&)">
			<h3>bool contains(const BString& name) const;</h3>
		</div>
		<div id="setOrder(int)">
			<h3>void setOrder(int order);</h3>
		</div>
		<div id="order()">
			<h3>int order() const;</h3>
		</div>
		<div id="raise()">
			<h3>void raise();</h3>
			<p>Move this handler to the first position of parent's slave handlers list.</p>
		</div>
		<div id="lower()">
			<h3>void lower();</h3>
			<p>Move this handler to the last position of master's slaves list.</p>
		</div>
		<div id="event(const BEvent&)">
			<h3 id="event(const BEvent&)">virtual bool event(const BEvent& event);</h3>
			<p>This method will catch all event coming to viewer, you can reimplemented this to process them.</p>
		</div>
		<div id="paint(BPainter&)">
			<h3 id="paint(BPainter&)">virtual void paint(BPainter& painter);</h3>
			<p>Every time the viewer painted, this will be called, painter is passed by BViewer::paintEvent().</p>
		</div>
		<div id="render(BRender&)">
			<h3 id="render(BRender&)">virtual void render(BRender& render);</h3>
			<p>Every time the camera of viewer freshed, this will be called.</p>
		</div>
		<div id="updateEvent(const BEvent&)">
			<h3 id="updateEvent(const BEvent&)">virtual void updateEvent(const BEvent& event);</h3>
		</div>
		<div id="attachEvent(const BEvent&)">
			<h3 id="attachEvent(const BEvent&)">virtual void attachEvent(const BEvent& event);</h3>
			<p>When a handler is attached to a viewer this will be called once.</p>
		</div>
		<div id="detachEvent(const BEvent&)">
			<h3 id="detachEvent(const BEvent&)">virtual void detachEvent(const BEvent& event);</h3>
			<p>When a handler is detached from a viewer this will be called once.</p>
		</div>
		<div id="focusEvent(const BFocusEvent&)">
			<h3 id="focusEvent(const BFocusEvent&)">virtual bool focusEvent(const BFocusEvent& event);</h3>
		</div>
		<div id="keyDownEvent(const BKeyEvent&)">
			<h3 id="keyDownEvent(const BKeyEvent&)">virtual bool keyDownEvent(const BKeyEvent& keyEvent);</h3>
		</div>
		<div id="keyUpEvent(const BKeyEvent&)">
			<h3 id="keyUpEvent(const BKeyEvent&)">virtual bool keyUpEvent(const BKeyEvent& keyEvent);</h3>
		</div>
		<div id="mouseEnterEvent(const BMouseEvent&)">
			<h3 id="mouseEnterEvent(const BMouseEvent&)">virtual bool mouseEnterEvent(const BMouseEvent& mouseEvent);</h3>
		</div>
		<div id="mouseLeaveEvent(const BMouseEvent&)">
			<h3 id="mouseLeaveEvent(const BMouseEvent&)">virtual bool mouseLeaveEvent(const BMouseEvent& mouseEvent);</h3>
		</div>
		<div id="mousePressEvent(const BMouseEvent&)">
			<h3 id="mousePressEvent(const BMouseEvent&)">virtual bool mousePressEvent(const BMouseEvent& mouseEvent);</h3>
		</div>
		<div id="mouseReleaseEvent(const BMouseEvent&)">
			<h3 id="mouseReleaseEvent(const BMouseEvent&)">virtual bool mouseReleaseEvent(const BMouseEvent& mouseEvent);</h3>
		</div>
		<div id="mouseMoveEvent(const BMouseEvent&)">
			<h3 id="mouseMoveEvent(const BMouseEvent&)">virtual bool mouseMoveEvent(const BMouseEvent& mouseEvent);</h3>
		</div>
		<div id="mouseWheelEvent(const BMouseEvent&)">
			<h3 id="mouseWheelEvent(const BMouseEvent&)">virtual bool mouseWheelEvent(const BMouseEvent& mouseEvent);</h3>
		</div>
		<div id="mouseClickEvent(const BMouseEvent&)">
			<h3 id="mouseClickEvent(const BMouseEvent&)">virtual bool mouseClickEvent(const BMouseEvent& mouseEvent);</h3>
		</div>
		<div id="mouseDoubleClickEvent(const BMouseEvent&)">
			<h3 id="mouseDoubleClickEvent(const BMouseEvent&)">virtual bool mouseDoubleClickEvent(const BMouseEvent& mouseEvent);</h3>
		</div>
		<div id="dragEnterEvent(const BDragEvent&)">
			<h3 id="dragEnterEvent(const BDragEvent&)">virtual bool dragEnterEvent(const BDragEvent& dragEvent);</h3>
		</div>
		<div id="dragLeaveEvent(const BDragEvent&)">
			<h3 id="dragLeaveEvent(const BDragEvent&)">virtual bool dragLeaveEvent(const BDragEvent& dragEvent);</h3>
		</div>
		<div id="dragMoveEvent(const BDragEvent&)">
			<h3 id="dragMoveEvent(const BDragEvent&)">virtual bool dragMoveEvent(const BDragEvent& dragEvent);</h3>
		</div>
		<div id="dragDropEvent(const BDragEvent&)">
			<h3 id="dragDropEvent(const BDragEvent&)">virtual bool dragDropEvent(const BDragEvent& dragEvent);</h3>
		</div>
	</body>
</html>